package com.example.demo.interview.ali.q20200423;

/**
 * @author liweizhi
 * @date 2020/4/28
 * <p>
 * 某个类有两个重载方法：void g(double d) 和 void g(Integer i)，那么 g(1) 的会调用哪个方法？
 * <p>
 * A. 前者
 * B. 后者
 * C. 随机调用
 * D. 编译出错
 * <p>
 * 答案是A,double
 * 如果重载方法只有double 和 Integer,g(1)竟然被编译成了g(1.0D)
 * 但是如果再加个int类型的重载方法,那就还是g(1),调用int的方法
 * 可以得出个结论:编译时候,优先调用简单类型的int > double > Integer > Double
 */
public class Test007 {
    static void g(double i) {
        System.out.println("double");
    }

    static void g(Double i) {
        System.out.println("Double");
    }

    static void g(Integer i) {
        System.out.println("Integer");
    }

    /*static void g(int i) {
        System.out.println("int");
    }*/

    public static void main(String[] args) {
        g(1);
    }
}
